﻿using BUGCOME.Model.Auth;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BUGCOME.Service.Auth.IServices
{
    /// <summary>
    /// 团队成员服务接口，继承自基础服务接口IBaseService
    /// 定义了团队成员信息的所有核心业务操作规范，包括成员的添加、查询、更新、删除等
    /// 所有团队成员相关的业务逻辑实现类都应实现此接口
    /// </summary>
    public interface ITeamMemberService : IBaseService<TeamMember>
    {
        /// <summary>
        /// 异步添加团队成员信息到系统中
        /// 该方法会执行数据验证、业务规则检查（如成员唯一性校验）并将数据持久化
        /// </summary>
        /// <param name="teamMember">待添加的团队成员信息实体对象，需包含完整的成员属性（如姓名、角色、所属团队ID等）</param>
        /// <returns>
        /// 一个Task， TResult为添加成功后的团队成员实体对象
        /// 包含系统自动生成的主键ID及其他默认填充字段（如创建时间、创建人等）
        /// 若添加失败，可能会抛出相应的业务异常（如数据验证失败异常、重复添加异常等）
        /// </returns>
        Task<TeamMember> AddTeamMemberAsync(TeamMember teamMember);
    }
}
